package cn.gorit.mapper.content;

import cn.gorit.dto.content.BlogDto;
import cn.gorit.dto.content.BlogReadDto;
import cn.gorit.dto.content.BlogUpdateDto;
import cn.gorit.entity.content.Blog;
import cn.gorit.utils.Page;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @version v1.0
 * @Classname BlogMapper
 * @Description 文章相关接口
 * @Author CodingGorit
 * @Created on 2021/3/30
 * @IDLE IntelliJ IDEA
 **/
@Repository
public interface BlogMapper {
    // 添加内容
    void save(Blog dto);

    // 【通用】查看内容
    Blog getBlogById(String blogId);

    // 修改内容
    void updateBlog(Blog dto);

    // 内容置顶 （管理员才有权限操作，普通人员没办法操作）
    void updateBlogTopById(Integer status,String blogId);

    // 开启评论（用户自己开启） 0 默认不开启，1 表示开启
    void updateCommentAble(Integer enable,String blogId);

    // 前台阅读博客
    BlogReadDto readById(String BlogId);

    // 更新阅读量 
    void updateRead(String blogId);

    // 【前台专用】分页获取内容
    List<BlogDto> getBlogListByPage(Page<BlogDto> blog);

    // 【后台admin 查询博客列表】
    List<Blog> getBlogListBackByPage(Page<Blog> page);

    // 【后台admin 对应的列表总数】
    Integer getBlogListBackCount(Page<Blog> page);

    // 获取分页的总数
    Integer getBlogCountByPage(Page<BlogDto> blog);

    void deleteBlog(String blogid);

    // =================  点赞 ======================

    // 点赞数量更新 【待修改】
    void updateBlogLike(BlogUpdateDto dto);

    // 评论更新    【待修改】
    void updateBlogComment(BlogUpdateDto dto);
    
    // 更新收藏量  不处理 RPC
    void updateCollection(BlogDto dto);

    // BlogUpdateDto 的查询接口
    BlogUpdateDto getBlogUpdate(String BlogId);

    // 获取点赞总数
//    Integer getLikesByIds();
}
